Methods and systems for dynamic execution of actions in response to communications events of one or more communications protocols

ABSTRACT

According to one aspect, the subject matter described herein includes a method for dynamic execution of actions in response to communications events of one or more communications protocols that are generated in response to a variety of triggers. The method includes, at an event clearinghouse for receiving communications events, receiving a communications event that is associated with a trigger, the communications event having a first communication protocol, identifying an action to take in response to the communications event, identifying a target for the action, and initiating the identified action by or on behalf of the identified target, wherein the event clearinghouse supports a plurality of communications protocols.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.15/487,522 filed on Apr. 14, 2017, which is a continuation of U.S.patent application Ser. No. 14/947,700 filed on Nov. 20, 2015, now U.S.Pat. No. 9,674,124 issued on Jun. 6, 2017, which claims priority to U.S.Provisional Patent Application No. 62/147,905 filed on Apr. 15, 2015,the entire contents of which are incorporated herein.

TECHNICAL FIELD

This disclosure relates to dynamic execution of actions in response tocommunications events. More specifically, it relates to dynamicexecution of actions in response to communications events of one or morecommunications protocols that are generated in response to a variety oftriggers (e.g., visual, near field, or radio).

BACKGROUND

While it may be desirable both from a consumer's perspective and anadvertiser or manufacturer's perspective, it is often difficult tosuccessfully integrate different portable communications protocols forthings such as social networking, smart posters, discounts, itemtracking, and many more.

Typically, events or actions are statically associated with a particularcommunications protocol, such as detecting the presence of an Near FieldCommunication (“NFC device” e.g., NFC tag) in proximity to an NFC reader(e.g., NFC-capable smartphone) and displaying a webpage on the NFCreader. With the widespread adoption and resulting decreased cost ofvarious portable communications sources such as Wi-Fi, Bluetooth, NFC,and QR codes, it has become more difficult to create systems thatsupport or work across a multitude of communications protocols in anefficient manner for the benefit of consumers in a variety of scenarios.

Accordingly, a need exists for dynamic execution of actions in responseto communications events of one or more communications protocols thatare generated in response to a variety of triggers (e.g., visual, nearfield, or radio), independent of communications protocol.

SUMMARY

The subject matter disclosed herein includes methods, systems, andcomputer program products for dynamic execution of actions in responseto communications events of one or more communications protocols thatare generated in response to a variety of triggers, independent ofcommunications protocol. Because the methods, systems, and computerprogram products described herein support events in one or morecommunications protocols, actions may be taken in response to a widevariety of triggers.

As used herein, the term “trigger” refers to a condition that isdetected, and the term “event” refers to a message or other actiongenerated in response to the trigger. Events may also be generated inresponse to other events or conditions. An event that is generated inresponse to a trigger is referred to as a “base event”.

As used herein, the term “event stream” refers to a set of events thatmay be somehow related. The term “event stream” most commonly refers toa set of events that are generated or occur serially or in a sequence,but the term may also be applied to a set of events that occur inparallel. The events in an event stream may be related in one or moreways. For example, an event stream may include events of the same type,whether or not they come from the same source or are generated inresponse to the same trigger. Alternatively, an event stream may includeevents that come from the same source or are generated in response tothe same trigger, whether or not they are all the same type. An eventstream may be simply be the set of all events received by aclearinghouse, or it may be a subset of these events. Alternatively,event streams may mean a single event in a degenerate case.

Where the event stream is a set of events that occur in a sequence overtime, such as where a trigger causes event A to be generated, and eventA causes event B to be generated, for example, event A is referred to asbeing “upstream” from event B, and event B is referred to as being“downstream” from event A. Detection of a trigger condition orconditions may give rise to generation of an individual event or anevent stream. As used herein, the term “communications event” refers toan event communicated via a communications network, such as a datanetwork or a telecommunications network.

Examples of triggers include, but are not limited to, visual triggers,near field communications (NFC) triggers, radio communications triggers,audio or aural triggers, proximity triggers, presence triggers, andtouch or contact triggers. Visual triggers can be simple, such asdetection of a bar code or QR code, or can be complex, such as requiringthe recognition of a particular object such as person recognition(through facial recognition, retina scans, or other means), characterrecognition for license plates, signs and publications, flora and faunarecognition, or other forms of sophisticated visual analysis used toidentify items. NFC and radio communications triggers include, but arenot limited to, unilateral transmission of data, e.g., “beacons”,bidirectional communications and transactions between active devices,and also the signals generated by passive devices in response to aninterrogating device. These devices may participate in applications thatare collectively known as the “internet of things”, or “IoT”.

Events of various communications protocols are received by aclearinghouse, which determines an action to take in response to theevent or events and determines the target(s) of such action. An actiontaken by the clearinghouse may itself be an event that causes additionalactions to be taken.

According to one aspect, the subject matter described herein includes amethod for dynamic execution of actions in response to communicationsevents of one or more communications protocols that are generated inresponse to a variety of triggers, independent of communicationsprotocol. The method includes, at an event clearinghouse for receivingcommunications events, receiving a communications event that isassociated with a trigger, the communications event having a firstcommunication protocol, identifying an action to take in response to thecommunications event, identifying a target for the action, andinitiating the identified action by or on behalf of the identifiedtarget. The event clearinghouse can support one or more communicationsprotocols simultaneously.

According to another aspect, the subject matter described hereinincludes a system for dynamic execution of actions in response tocommunications events of one or more communications protocols that aregenerated in response to a variety of triggers, independent ofcommunications protocol. The system includes an events clearinghouse forreceiving communications events, where the events clearinghouse isconfigured for receiving a communications event that is associated witha trigger, the communications event having a first communicationprotocol, identifying an action to take in response to thecommunications event, identifying a target for the action, andinitiating the identified action by or on behalf of the identifiedtarget, where the event clearinghouse supports a plurality ofcommunications protocols. The clearinghouse may also take action inresponse to detection of a particular stream of events. Likewise, theclearinghouse may take action in response to an absence of a particularevent within in a particular time period or an absence of a particularevent that was expected to be received at a certain point in a sequence.

The subject matter described herein for dynamic execution of events inresponse to communications triggers may be implemented in hardware,software, firmware, or any combination thereof. As such, the terms“function” or “module” as used herein refer to hardware, software,and/or firmware for implementing the feature being described.

In one exemplary implementation, the subject matter described herein maybe implemented using a computer readable medium having stored thereonexecutable instructions that when executed by the processor of acomputer control the computer to perform steps. Exemplary computerreadable media suitable for implementing the subject matter describedherein include disk memory devices, chip memory devices, programmablelogic devices, application specific integrated circuits, and othernon-transitory storage media. In one implementation, the computerreadable medium may include a memory accessible by a processor of acomputer or other like device. The memory may include instructionsexecutable by the processor for implementing any of the methods fordynamic execution of events in response to communications triggersdescribed herein. In addition, a computer readable medium thatimplements the subject matter described herein may be located on asingle device or computing platform or may be distributed acrossmultiple physical devices and/or computing platforms.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the subject matter described herein will now be explainedwith reference to the accompanying drawings, wherein the like referencenumerals represent like parts, of which:

FIG. 1 is a block diagram illustrating an exemplary system architecturefor dynamic execution of actions in response to communications eventsthat are generated in response to a variety of triggers, independent ofcommunications protocol, according to an embodiment of the subjectmatter described herein;

FIG. 2 is a flow chart illustrating an exemplary process for dynamicexecution of actions in response to communications events that aregenerated in response to a variety of triggers, independent ofcommunications protocol, according to an embodiment of the subjectmatter described herein;

FIG. 3 is a block diagram illustrating an exemplary event clearinghousefor dynamic execution of actions in response to communications eventsthat are generated in response to a variety of triggers, independent ofcommunications protocol, according to an embodiment of the subjectmatter described herein;

FIG. 4 is a diagram illustrating a social use case according to anembodiment of the subject matter described herein;

FIG. 5 is a diagram illustrating a retail manufacturing use caseaccording to an embodiment of the subject matter described herein;

FIG. 6 is a diagram illustrating a retail product support use caseaccording to an embodiment of the subject matter described herein;

FIG. 7 is a diagram illustrating a dating use case according to anembodiment of the subject matter described herein;

FIG. 8 is a diagram illustrating a manufacturing assembly use caseaccording to an embodiment of the subject matter described herein;

FIG. 9 is a diagram illustrating a gaming food and beverage use caseaccording to an embodiment of the subject matter described herein;

FIG. 10 is a diagram illustrating a registration use case according toan embodiment of the subject matter described herein;

FIG. 11 is a diagram illustrating an automotive use case according to anembodiment of the subject matter described herein;

FIG. 12 is a diagram illustrating a battlefield use case according to anembodiment of the subject matter described herein;

FIG. 13 is a diagram illustrating a conference and event use caseaccording to an embodiment of the subject matter described herein;

FIG. 14 is a diagram illustrating a cruise ship and theme park use caseaccording to an embodiment of the subject matter described herein;

FIG. 15 is a diagram illustrating a rental item location and trackinguse case according to an embodiment of the subject matter describedherein;

FIG. 16 is a diagram illustrating an item location and tracking fortheft protection use case according to an embodiment of the subjectmatter described herein;

FIG. 17 is a diagram illustrating a wedding gift registry use caseaccording to an embodiment of the subject matter described herein.

DETAILED DESCRIPTION

Methods and systems for dynamic execution of actions in response tocommunications events that are generated in response to a variety oftriggers, independent of communications protocol, are presented herein.

Generally speaking, the methods and systems described herein involve acentral event clearinghouse that receives events that are generated inresponse to a variety of triggers and from a variety of sources,including various types of sources, and takes action in response to theevents. Example triggers include, but are not limited to, visualtriggers, near field communications triggers, and radio frequencytriggers. Other types of triggers include, but are not limited to, touchor contact triggers, proximity or presence triggers, audio or auraltriggers, motion or acceleration triggers, and user input triggers.Example actions that may be taken by the clearinghouse include, but arenot limited to, routing the event to one or more target destinations,and/or initiating some action other than routing the event to adestination. The action taken may be directed towards, or be taken onbehalf of, one or more target recipients.

In one embodiment, the event clearinghouse receives an event anddetermines a matching profile using a profile manager associated withthe clearinghouse. The event clearinghouse may determine a set ofmatching rules to be applied, and then use those matching rules toidentify one or more targets and to identify one or more actions to beperformed by or on behalf of the identified target(s). Example actionsinclude, but are not limited to, invoking an application on a targetsmartphone for displaying an advertisement or digital coupon in the formof a QR code; downloading a maintenance routine to a machine on afactory floor; and notifying a smartphone user of the proximity of otherpeople having shared interests. Instructions for performing thedetermined action can be either explicit or implicit, depending on thecapabilities and configuration of the target device.

The event clearinghouse may be a server computer, a client computer, apersonal computer (PC), a tablet PC, a laptop computer, a set-top box(STB), a personal digital assistant (PDA), a cellular telephone, aniPhone, a Blackberry, a processor, a telephone, a web appliance, anetwork router, switch or bridge, or any machine capable of executing aset of instructions (sequential or otherwise) that specify actions to betaken by that machine. The event clearinghouse may operate as astandalone device or may be connected (e.g., networked) to othermachines. In a networked deployment, the machine may operate in thecapacity of a server or a client machine in a client-server networkenvironment, or as a peer machine in a peer-to-peer (or distributed)network environment. Additional details regarding the components,structure, and functions of the event clearinghouse are provided below.

Overview

The subject matter described herein includes methods and systems fordynamic execution of actions in response to communications events thatare generated in response to a variety of triggers, independent ofcommunications protocol, are presented herein. By connecting theincreasingly pervasive world of proximity-based embedded devices withconsumer applications in a wide variety of use cases, the presentdisclosure provides enhanced value to consumers, retailers,manufacturers, and advertisers.

As used herein, the term “producer” refers to an entity that generates atrigger or trigger condition, and the terms “scanner” and “detector”refer to an entity that detects the trigger or trigger condition andgenerates an event that is sent to the clearinghouse. A “consumer” maybe an entity that is a final destination to which the clearinghouse mayroute an event or event stream. Alternatively, consumer may be anintermediate party and further downstream transmission or events mayoccur. The clearinghouse may also be a consumer. For example, when anevent is received by a clearinghouse, it may forward the event to one ormore destinations, generate an action instead of forwarding the event,or forward the event and also generate an action. What the clearinghousedoes in response to an event may depend on the type of event, the ruleapplied to the event, the destinations determined for the event, otherconditions, or some combination of the above.

A producer and detector may be separate entities, as in the case of aBluetooth beacon (producer) and Bluetooth-capable smart phone(detector), or they may be part of the same entity, as in the case of amotion detector or other physical sensor which generates a signal (e.g.,IR or laser light) which it uses to detect movement.

Where the trigger condition is, for example, identification of an imageof a person via facial recognition software that is processing a camerafeed, it could be said that, conceptually, there is no “producer”—sincethe detector (i.e., the camera) detects the trigger condition byitself—or it could be said that the person being detected is the“producer”, e.g., by his or her very presence. On the other hand, when abarcode scanner recognizes a valid barcode, the barcode could beconsidered the producer and the barcode scanner could be considered thedetector.

The method begins when one or more producers generate and transmit acommunications signal (“trigger”). Producers are portable, embedded,and/or wearable communications devices such as QR code labels/stickers,RFID tags (passive or active) (e.g., E-Z Pass transponder, locks, keycards, passports, dog collars), Bluetooth-enabled devices (e.g.,headset, watch, speaker, mobile phone, business card), or NFC-enableddevices (e.g., amusement park bracelet, metro card, rewards/loyaltycard).

Triggers are broadcast transmissions using any of several communicationformats ranging from visible light to various frequencies of radio waves(e.g. Wi-Fi, Bluetooth, NFC, QR code). Each trigger may containinformation to identify the type of producer and to identify the sourceof the producer. Producer source identification may be defined by theproducer originating the trigger. Optionally, a producer type identifiermay also be maintained for producer classification. In one example usecase, a person may be visually recognized using facial patternrecognition and/or other biometric markers such as iris scanning, gaitanalysis, etc. The visual data may be received the event clearinghouseas trigger input(s).

Another type of producer is a context producer. Context producersprovide updates regarding subscribers or environmental conditions thatare leveraged by the clearinghouse to execute rules. Contextualinformation can include, but is not limited to, social updates, GPS orother location information, weather and traffic information,manufacturer information, and product data.

Triggers are received by a scanner, and optionally a context service,which are the initial receivers of triggers and which are responsiblefor forwarding events to the clearinghouse for further processing. Insome configurations scanners can have additional capabilities topre-filter events prior to delivery to the clearinghouse, or locallydeliver triggers to consuming applications prior to or instead offorwarding them for future delivery. Scanners and other receivers maycollect multiple triggers together from multiple producers to create oneor more event streams. A scanner (or context service) may take anynumber of forms including, but not limited to, an application on amobile phone or wearable device, dedicated kiosks, and consumerelectronics. Scanners may also be referred to as “readers”, “detectors”,“receivers”, and the like.

Context producers may produce context triggers that are detected byscanners, which generate context events in response, but contextproducers may also produce context events directly, in which case thecontext producer may be considered a combined producer and scanner.

The one or more event streams are then received by an eventclearinghouse. The event clearinghouse is a server or collection ofservers (e.g., cloud service) and may be remotely located from theproducers and/or the scanners. The event clearinghouse is responsiblefor receiving events, processing the received events, and performingsome action in response to the events. Actions which may be performed bythe clearinghouse include, but are not limited to, delivering the eventsto their next destination (e.g., another clearinghouse), delivering theevents to their final destinations (e.g., consumers), and/or, ratherthan forwarding the received event, taking some other action, such assending a text message or email to a subscriber, changing a status ofthe subscriber in a database maintained by the clearinghouse,recalculating an international currency exchange rate, changing amanufacturing target of a factory floor, and so on. The possible actionsthat could be performed by, or initiated by, the clearinghouse inresponse to received events are limited only by the imagination and bythe limits of available technology.

Some embodiments may use a centralized clearinghouse, while otherembodiments may use a distributed clearinghouse, Still other embodimentsmay use a hierarchy of clearinghouses, e.g., having a central, top-levelclearinghouse with sub-clearinghouses in one or more tiers below. In oneembodiment, for example, a scanner could include a mini-clearinghousethat receives events that it can choose to route locally or send to theparent clearinghouse

The event clearinghouse identifies a set of consumers based on the eventstreams and matching rules. For example, a Matching Engine in the eventclearinghouse applies rules to determine the next destinations based ondata in the event stream(s), tag classifications, contextual informationabout connected consumers, profile information, or other sources ofinformation accessible to the event clearinghouse. These identifieddestinations may be referred to as subscribers. Subscribers may beendpoints (e.g., consumers) or waypoints for events delivered by theclearinghouse, and responsible for executing actions/commands or forprocessing data stored in the event streams. For example, a subscribermay be a waypoint for events that will be delivered to one or moreconsumers. A subscriber that subscribes a consumer on behalf of theconsumer but is not actually the recipient of the action may be referredto as a “proxy manager” or “subscriber manager”.

Once processing of all rules is completed, the event clearinghousegenerates one or more actions for initiating an action by the consumers.This information may be written to a modifiable event store database.

The one or more actions are sent from the event clearinghouse to theidentified set of consumers. Actions are executed by consumers based onthe options criteria of the consumer application that receives theevent. The consumer application is responsible for reading the tagsource, tag type, and any other data available in the event stream whichis provided as part of the action. The consumer application determineswhether further execution (i.e., the action execution) is warrantedbased on the data read. The actions to be executed by the consumer canbe explicitly stated as an application command or may be implicitlystated and entirely defined within the consumer application. If theevent is deemed executable by the consumer application, the actions areexecuted, e.g., by an action dispatcher or other entity or component ofthe consumer application. Events can include, but are not limited to,invocation of a webpage, invocation of a social media app, SMS message,invocation of an app (either local to the consumer or remote to theconsumer), or analytic decision engine execution. Multiple actions canalso be executed based on a single trigger. For example, consumerapplications may execute the action and/or may forward the action toother consumer applications.

Thus, the subject matter described herein defines a managed environmentfor receiving triggers, determining the appropriateness of the triggerto a trigger recipient, and the optional execution of an event based onthe reception of the trigger event. Aspects of the system architecture,core process flow, and several example use cases will be described ingreater detail below.

System Architecture

FIG. 1 is a block diagram illustrating an exemplary system architecturefor dynamic execution of actions in response to communications eventsaccording to an embodiment of the subject matter described herein.Referring to FIG. 1, the system 100 includes various producers 102 whichgenerate and send triggers to scanner 104. Scanner 104 sends triggerevent streams to event clearinghouse 106. Optionally, context service108 may also send context event streams to event clearinghouse 106.Trigger event streams and context event streams may be referred toindividually or collectively as “event streams”. Event clearinghouse 106may then generate and send actions or application commands to one ormore consumers 110. Each of these components will now be described ingreater detail below.

Producers 102 include any device capable of transmitting (e.g.,broadcasting) a communications signal or otherwise conveying information(e.g., displaying QR codes or barcodes to be scanned). Producers 102typically transmit signals or otherwise convey information overrelatively short distances (e.g., 0-10 meters). Producers 102 areportable, embedded, and/or wearable communications devices and mayutilize various communications protocols such as visible light (e.g., QRcodes), RFID, Bluetooth, or NFC. Examples of producers 102 include E-ZPass transponders, locks, key cards, passports, dog collars, headsets,watches, speakers, mobile phones, business cards, amusement parkbracelets, metro cards, rewards/loyalty cards, QR codes, and visualbiometric indications, including, but not limited to, facial recognitionand retina scan. Thus, producers 102 may include type A tags 102A, typeB tags 102B, type C tags 102C.

Scanner 104 is responsible for sensing the environment and deliveringtrigger streams to event clearinghouse 106. Scanner 104 can take anynumber of form factors including software/hardware running on a mobilephone, a dedicated device, a wall mounted reader, a kiosk, etc. The formfactor of scanner 104 may depend on the use case. The scanner 104 mayinclude one or more sensors that implement a communications protocol incommon with producers 102 to read nearby producer devices 102.

When a tag 102 is placed in proximity to scanner 104, or when scanner104 is otherwise a recipient of a tag 102, scanner 104 will forwardevents matching predetermined criteria to event clearinghouse 106 as oneor more trigger event streams. The criteria applied by scanner 104 maydepend upon the application and may be configurable by the user. Thecriteria may also use the trigger type associated with the trigger(s) todefine event handling, but is not required to do so.

Alongside scanners 104, context services 108 are the other maincontributors to the state maintained by the event clearinghouse 106.Context services 108 may act as one of the producers to theclearinghouse 106. Context services 108 create one or more context eventstreams that combine information about encountered tags with additionalcontextual information about the users of the service. Contextinformation can include GPS location, social updates, demographicinformation, employment history, promotions that are active for a periodof time, and other sources of information. Context services 108 havemyriad forms and can be specific to a user, application, organization,etc. The context information added by the context service 108 can modifythe state of the event clearinghouse 106 and thus may affect rulesprocessing. In one embodiment, a scanner may also act as a contextservice and provide context information to the clearinghouse.

Event clearinghouse 106 is the central component of system 100responsible for the interpretation of activities in the form of triggerevents and context events into the appropriate actions delivered toconsumer applications. Thus, event clearinghouse 106 is responsible foraccepting event streams (e.g., context streams and trigger streams) fromproducers 104 and 108, creating a target consumer set by matching theevent information, context information, rules, and consumers 110. Eventclearinghouse 106 then performs one or more actions, which may entaildelivering messages to interested consumer applications 110. Thesemessages may themselves be actions or instructions for actions (e.g.,application commands).

There is no requirement that event clearinghouse 106 is a single node.Some use cases may use one or more clearinghouse components 106. It isalso possible that the clearinghouse 106 may include a network ofinterconnected clearinghouses 106 that collaborate to accomplish the usecases. The event clearinghouse 106, however, is referred to hereafter asa single entity for simplicity.

The event clearinghouse 106 may include a service that makes itscapabilities available through APIs. The APIs can leverage anycommunication/protocol technology including but not limited to webservices, RESTful web services, asynchronous messaging, event streamingservices, raw tcp/ip, Bluetooth®, NFC, ad-hoc mesh networking, etc. Thespecific protocols and networking technologies may depend on the usecases and environment in which the event clearinghouse 106 is deployed.

The event clearinghouse 106 is also responsible for the management of arepresentation of the current state of the environment. This state isinterpreted from the events that event clearinghouse 106 has received asevent streams over time and the contextual information that is providedby context service 108. This state representation can be stored by eventclearinghouse 106 in memory, persisted, or partitioned across a networkof machines' memory or disks. The details of implementation may varydepending on the quantity of information necessary to represent thestate and the speed at which that information needs to be processed.

The event clearinghouse 106 is also responsible for the application ofrules on the state representation in order to determine which actions todispatch to consumer applications 110 or other clearinghouses forfurther processing. The rules can take a variety of forms including butnot limited to compiled code, RETE engines, event stream processingframeworks, and interpreted scripts. The rule engine may access thestate information managed by the event clearinghouse 106 through API,direct memory access, or a variety of other techniques. Rules execute ona frequency defined by the use case and governed by the engine. Rulescan execute upon every state change (trigger arrival, context updates,etc.), at a predefined time, every n seconds, etc. Rules may alsoinclude machine learning algorithms such as grouping by learning orgrouping by similarity.

The rules executed by the event clearinghouse 106 interpret the state atthe time of execution (or a window of time) and determine the actions tobe executed by the consuming applications 110. The event clearinghouse106 is then responsible for delivery of these actions to the targetedconsumers 110. This delivery can either be pulled from the consumerclient 106 or pushed from the event clearinghouse 106 (or a combinationof both techniques) depending on the connectivity capabilities of theinteracting devices 106 and 110. They can leverage any of theaforementioned protocols or any other protocol/technology that isappropriate for the use case.

The event clearinghouse 106 may provide facilities to analyze andimprove its functioning. These services can take the form of long termevent storage for historical analysis, machine learning algorithms tocreate and enhance rules, replay capabilities to test hypotheses, etc.These capabilities can also be provided by a client or peer of theclearinghouse in some embodiments.

The event clearinghouse 106 may also contain a set of support servicesthat provide capabilities for authentication, user management, deviceregistration and management, metadata management, system management andmonitoring, storage, memory management, etc. These support services willbe described in greater detail below with respect to FIG. 3.

Consumers 110 are capable of executing actions dispatched by the eventclearinghouse 106. Consumers 110 can take any number of form factorsincluding software/hardware running on mobile phones, dedicated devices,wall mounted readers, kiosks, automobiles, devices, the internet ofthings, etc. The correct form factor of consumers 110 may depend on usecase. Consumers 110 receive events from the clearinghouse 106 and canexecute some or all of the actions that are requested in those events.Each consumer application 110 may determine which, if any, of theactions requested by the event clearinghouse 106 are to be executed bythe consumer 110.

Core Process Flow

FIG. 2 is a flow chart illustrating an exemplary process for dynamicexecution of actions in response to communications events according toan embodiment of the subject matter described herein. Referring to FIG.2, the process may begin at step 1A when tags 102 send triggers toscanner 104. For example, an RFID-tagged object may be scanned by anRFID-enabled mobile phone. Various information may be included in thetrigger such as information identifying the type of tag, a productcategory, a manufacturer, or a serial number. Similarly, at step 1B,context app 108 may receive context information from various contextinformation producers. Context information may include social networkingstatus updates, GPS location information, or other information notprovided by tags 102.

Producers 104 and 108 then aggregate the information obtained in steps 1a and 1 b into one or more event streams. At steps 2A and 2B, therespective event streams are provided to an event clearinghouse 106 forprocessing. The event clearinghouse 106 is typically, but not always,located remotely from producers 104 and 108. As such, the communicationsprotocols used to communicate between producer 104 and tags 102 (e.g.,Bluetooth) may be different from the protocols used to communicatebetween producer 104 and event clearinghouse 106 (e.g., TCP/IP).

At step 3, the event clearinghouse 106 identifies a set of consumersbased on the event streams and matching rules. For example, a MatchingEngine in the event clearinghouse applies rules to determine the nextdestinations based on data in the event stream(s), tag classifications,contextual information about connected consumers, profile information,or other sources of information accessible to the event clearinghouse.

Once processing of all rules is completed, the event clearinghouse 106generates, at step 4, one or more actions for initiating an action bythe consumers. The one or more actions are sent from the eventclearinghouse to the identified set of consumers 110. Actions areexecuted by or on behalf of consumers 110 based on the options criteriaof the consumer application that receives the event. The consumerapplication 110 is responsible for reading the data provided by theevent clearinghouse 106. The consumer application 110 determines whetherfurther execution (i.e., the action execution) is warranted based on thedata read. The actions to be executed by the consumer 110 can beexplicitly stated as an application command or may be implicitly statedand entirely defined within the consumer application. If the event isdeemed executable by the consumer application 110, the actions areexecuted. Events can include, but are not limited to, invocation of awebpage, invocation of a social media app, SMS message, invocation of anapp (either local to the consumer or remote to the consumer), oranalytic decision engine execution. Multiple actions can also beexecuted based on a single trigger.

Event Clearinghouse—Detailed

FIG. 3 shows a diagrammatic representation of a machine in the exampleform of a computer system within which a set of instructions, forcausing the machine to perform any one or more of the methodologiesdiscussed herein, may be executed. Referring to FIG. 3, eventclearinghouse 106 may include communications services and APIs 300,metadata subsystem 302, delivery subsystem 304, and databases 306-308.

Communications services and APIs 300 may be responsible forcommunication between event clearinghouse 106 and other externalcomponents, such as producers 104 and 108, consumers 110, and otherclearinghouses 106. External devices may also include computer accessterminals so that users or administrators may configure, authenticate,develop, or monitor aspects of event clearinghouse 106. Communicationsservices and APIs 300 may also be responsible for communication betweenevent clearinghouse 106 and other internal components, such as metadatasubsystem 302, delivery subsystem 304, and databases 306-308.Communications services and APIs 300 may include a user configurationand authentication module 310, a development module 312, an analysismodule 314, a consumer module 316, a producer module 318, and a monitormodule 320.

A user configuration and authentication module is an API that allowsusers to login to the system and to validate that they have thepermissions to execute the activities that they are attempting. It isoptional in most configurations, though it may be a required componentfor secured networks

The development module is an API that allows rule developers to managethe lifecycle of the artifacts they create. Capabilities could includeversion control, versioned activation, test execution, build, and otherservices associated with the development of code and metadata artifacts

The analysis module is an API that allows rule writers to understand andmeasure the performance of event rule execution. Results from analysisare often used to develop the next version of the rules usinginformation discovered through this API to improve upon existingartifacts

The consumer and producer modules are APIs designed to allow thedelivery of messages to and from the clearinghouse. Producer submit newevents and streams using the producer API. Actions are delivered toconsumers through the consumer API

The monitor module is used to maintain and control the health of theclearinghouse system. It may make system metrics, logs, backup andrestore actions, and many others available for administrators to takeadvantage of.

The metadata subsystem 302 allows users to configure the behavior of theclearinghouse 106, develop and manage the lifecycle of rules used atruntime, and to provide details about subscribers of the service in theform of consumer profile information. The metadata subsystem 302includes a profile manager 322, a rule manager 324, an action manager326, and a rule simulation and analysis module 328.

The delivery subsystem 304 is responsible for combining previouslystored metadata, incoming triggers, and frequently changing contextinformation to deliver incoming events to interested consumers. Thedelivery subsystem 304 includes a context listener 330, a triggerlistener 332, a matching engine 334, and an action dispatcher 336.

Metadata repository 306 may store metadata associated with producers orconsumers obtained from event streams. Metadata may include bothstructural metadata about the design and specification of datastructures or descriptive about individual instances of application dataor the data content.

Event store 308 may store actions or event streams once processing hasbeen performed by event clearinghouse 106 to determine a target set ofconsumers 110.

In the example of FIG. 3, the event clearinghouse 106 may includecomputer system 300 which includes a processor, memory, non-volatilememory, and an interface device. Various common components (e.g., cachememory) are omitted for illustrative simplicity. The computer system 300is intended to illustrate a hardware device on which any of thecomponents depicted in the example Figures (and any other componentsdescribed in this specification) can be implemented. The computer system300 can be of any applicable known or convenient type. The components ofthe computer system 300 can be coupled together via a bus or throughsome other known or convenient device. The processor includes hardwareand may be a conventional microprocessor such as are made by Intel, AMD,ARM, and other manufacturers. One of skill in the relevant art willrecognize that the terms “machine-readable (storage) medium” or“computer-readable (storage) medium” include any type of device that isaccessible by the processor.

The memory is coupled to the processor by, for example, a bus. Thememory can include, by way of example but not limitation, random accessmemory (RAM), such as dynamic RAM (DRAM) and static RAM (SRAM). Thememory can be local, remote, or distributed. The bus couples theprocessor to the non-volatile memory and drive unit. The non-volatilememory is often a magnetic floppy or hard disk, a magnetic-optical disk,an optical disk, a read-only memory (ROM), such as a CD-ROM, EPROM, orEEPROM, a magnetic or optical card, or another form of storage for largeamounts of data. Some of this data is often written, by a direct memoryaccess process, into memory during execution of software in thecomputer. The non-volatile storage can be local, remote, or distributed.The non-volatile memory is optional because systems can be created withall applicable data available in memory. A typical computer system willusually include at least a processor, memory, and a device (e.g., a bus)coupling the memory to the processor.

Software is typically stored in the non-volatile memory and/or the driveunit. Indeed, for large programs, it may not even be possible to storethe entire program in the memory. Nevertheless, it should be understoodthat for software to run, if necessary, it is moved to a computerreadable location appropriate for processing, and for illustrativepurposes, that location is referred to as the memory in this paper. Evenwhen software is moved to the memory for execution, the processor willtypically make use of hardware registers to store values associated withthe software, and local cache that, ideally, serves to speed upexecution. As used herein, a software program is assumed to be stored atany known or convenient location (from non-volatile storage to hardwareregisters) when the software program is referred to as “implemented in acomputer-readable medium.” A processor is considered to be “configuredto execute a program” when at least one value associated with theprogram is stored in a register readable by the processor.

The bus may couple the processor to a network interface device. Theinterface can include one or more of a modem or network interface. Itwill be appreciated that a modem or network interface can be consideredto be part of the computer system. The interface can include an analogmodem, ISDN modem, cable modem, token ring interface, satellitetransmission interface (e.g. “direct PC”), or other interfaces forcoupling a computer system to other computer systems. The interface caninclude one or more input and/or output devices. The I/O devices caninclude, by way of example but not limitation, a keyboard, a mouse orother pointing device, disk drives, printers, a scanner, and other inputand/or output devices, including a display device. The display devicecan include, by way of example but not limitation, a cathode ray tube(CRT), liquid crystal display (LCD), or some other applicable known orconvenient display device.

In operation, computer system 300 can be controlled by operating systemsoftware that includes a file management system, such as a diskoperating system. One example of operating system software withassociated file management system software is the family of operatingsystems known as Windows® from Microsoft Corporation of Redmond, Wash.,and their associated file management systems. Another example ofoperating system software with its associated file management systemsoftware is the Linux operating system and its associated filemanagement system. The file management system is typically stored in thenon-volatile memory and/or drive unit and causes the processor toexecute the various acts required by the operating system to input andoutput data and to store data in the memory, including storing files onthe non-volatile memory and/or drive unit.

Use Cases Social

FIG. 4 is a diagram illustrating a social use case according to anembodiment of the subject matter described herein. This embodimentconcerns the use of event clearinghouse 106 for identification of, andsharing of, information about consumers that have expressed commoninterests. At step 402, the producer 102 may be a device 400 thatgenerates a near field communications signal (e.g., the trigger) such asa mobile phone, piece of jewelry, smart watch, or others device with anRFID chip. The trigger signal transmitted by producer 102 contains anidentification and a signal class, such as a “social” class, and aProducerID.) The ProducerID identifies the producer 102, such as a modelnumber of a smartwatch. The producer 102 may have a registration profilein the clearinghouse profile manager.

At step 404, an application on the scanner 104 receives the signal. Forexample, a mobile device receives an RFID signal from the user'ssmartwatch. In an alternate embodiment, the signal may be a code visibleon the producer (e.g. a tattoo) or an NFC-capable chip (e.g. RFID)embedded into the body of the consumer.

The user receiving the signal at step 404 may be registered as someonewishing to receive social signals. Registration may be performed via aconsumer app at step 406 and the registration may be stored in theprofile manager at step 408. (Registration is discussed in more detailbelow, in the description of FIG. 10.) For example, a user may wish tobe notified when other users who are also interested in a particularbaseball team are near each other. At step 410, the signal may be routedfrom the scanner 104 (e.g., mobile phone) to the event clearinghousetrigger listener.

Event clearinghouse 106 identifies the “areas of influence” of theproducer 102 associated with the ProducerID. The event clearinghouse 106also identifies the list of consumer applications 110 that are“interested” in this type of event using the matching engine 334 andrules manager 324. For example, a target set of consumers may bedetermined based on a set of matching rules (step 412) executing againstthe rules stored in the rules manager (step 414). The targeted consumerset can include both subscribers whose originating scanner triggered theevent and subscribers that are not associated with the originatingscanner that triggered the event.

The event and signal information may then be sent to all active consumerapplications (not shown). Upon receiving the action information from theevent clearinghouse 106, each consumer 110 decides whether to executethe event (step 416). Examples of events that may be executed includedisplaying a Facebook page, display a website of interest, or invoke anapplication.

Retail—Manufacturing

FIG. 5 is a diagram illustrating a retail manufacturing use caseaccording to an embodiment of the subject matter described herein.Referring to FIG. 5, the producer 102 is any manufactured product (forexample, toy, clothing, food packaging, vehicle, etc.) which initiate atrigger signal. For example, at step 500, the signal is produced by apair of jeans with an embedded near field communication signalingdevice, such as an RFID chip. At step 502, the RFID chip embedded in theclothing generates a trigger signal that identifies the signal and asignal class. For example, the signal may include a “retail” class, a“jeans” productcategoryID; a “Levis” manufacturerID; and a “501”productID. The consumer list can include subscribers that are not theoriginating scanner that triggered the event. The Clearinghouse deliversthe processed events to all consumers as a mobile application thatdisplays information about the product.

In an alternative embodiment, the article of clothing continuouslybroadcasts the signal (retail; clothing; manufacturerID; productID.) Atstep 504, the consumer has an application that receives the signal(e.g., mobile phone) and the consumer has registered as someone thatwill send and receive these signals. At step 506, the consumer devicegenerates an event, which may or may not include information within orencoded by the signal, and sends the generated event to the eventclearinghouse trigger listener with identification information. At step508, the event clearinghouse identifies the list of consumerapplications that are “interested” in this type of event (retail;clothing; manufacturerID; productID) based on a set of matching rules.The product identification produces the execution of an activity basedon the trigger identification and the profile of the consumer(receiver.) At step 510, the clearinghouse notifies the consumer aboutthe article of clothing (style, color, nearest retail outlet, etc.)

In an extended embodiment, the event clearinghouse 106 recognizes theconsumer from past engagements based on information from the profilemanager, event store and/or context information. For example, theconsumer is recognized as a frequent buyer or premium customer for themanufacturer based on profile information in the Clearinghouse profilemanager. In this alternate embodiment, the rules engine recognizes thepremium customer and executes an alternate activity (e.g., delivery ofan SMS message with a discount on the product that is identified.)Alternatively, the consumer could be identified as someone that haspayments past due. In this event, the clearinghouse initiates adifferent activity by way of the action dispatcher that sends a noticeto the consumer of outstanding bills.

In an extended embodiment, the system can be used for marketing andadvertising in the same manner as Pay Per Click is executed for worldwide web traffic. The trigger can be considered analogous to a click.Manufacturers and retail outlets can bid for delivery of an actionexecution based on the “click”/trigger. Based on the trigger and theconsumers' profile, as well as the advertisers' profile, the mostappropriate action is triggered. Manufacturers and retailers would payfor delivered actions.

Retail—Product Support

FIG. 6 is a diagram illustrating a retail product support use caseaccording to an embodiment of the subject matter described herein. In afurther embodiment of the primary application, a manufacturer uses NFCto enhance the initial experience with a new customer with producton-boarding. The clearinghouse will manage the new customer experiencebased on the product and the needs of the new customer, including, butnot limited to, warranty registration, access to users manuals orfrequently asked questions, and system upgrades to the device. Forexample, an electronics manufacturer decides that the expense and thecarbon footprint of printed manuals are not in the best interest of thecompany or the consumer. The producer here is an electronicsmanufacturer of smart TVs. In order to reduce costs, the manufacturerhas decided not to include printed instructional information. Insteadthe manufacturer includes an RFID chip 600 and a QR code that hasidentification information and a signal class (in this caseinstructional.) The consumer in this case is a smart TV 602. Afterinitial setup, the consumer needs further information. In order toreceive further information, the consumer can scan the QR code with a QRreading device (e.g. mobile phone) or can receive the RFID signal 604with a receiving device (in this case, the smart TV.) Either the QR codeor the RFID chip contains identification information and signal class(instructional; manufacturerID; componentID) In this example,componentID is the name and serial number of smart TV. At step 606, thetrigger event is sent to the event clearinghouse and, at step 608, theaction manager returns an action—in this case to launch a manual readerapplication with the appropriate documentation. The consumer has electedto receive these notifications and, at step 610, the instructionalinformation is displayed on the smart TV via a book reader app. In afurther example, once the TV is installed, the trigger signal isreceived from the packaging by the smart TV. The profile managerrecognizes that this particular TV has never initiated a trigger in thepast. Based on rules in the rules manager, the clearinghouse initiates a“first connection action” and presents that consumer with theopportunity to submit a warranty card, take a virtual tour of the TV orview the manual.

Dating and Networking

FIG. 7 is a diagram illustrating a dating use case according to anembodiment of the subject matter described herein. In anotherembodiment, the clearinghouse can provide for a variety of socialnetworking applications for dating services, social networking orcommunity networking. Based on a token (e.g., heart pendant, businesscard, booth giveaway, corkscrew, mobile device etc.), people can becomepart of groups that share common interests. The goal of these affinitygroups is to facilitate meeting one on one for dating, networking andrecruiting community interaction.

By way of example, this embodiment can support an online dating service.The producer is a member of an online dating community—a community ofpeople with similar interests that are available to meet other membersof their community. Via blue tooth communications and a dating app onthe producer smart phone 700, a signal 702 is broadcast (trigger.) Inaddition to the trigger, GPS information is also broadcast. The consumeris a member of the same dating community and has a smart watch that actsas a scanner and captures the trigger and GPS information (step 704).The trigger is tagged as social; dating; communityID. At step 706, atrigger event is sent to the event clearinghouse along with GPSinformation. The event clearinghouse recognizes the signal and GPSinformation and, at step 708, routes the signal to the matching engine334, which identifies consumers interested in the social; dating;communityID signals that also are currently identified by GPS as beingin the same geographical area. At step 710, the event clearinghouseroutes the action (dating app with context of producer) to the consumer.If the consumer accepts the signal, then at step 712, the app displaysadditional information to the consumer, e.g., via the consumer's scanneror via other device owned by the consumer. In addition, informationindicating the consumer's acceptance of the signal may be sent to theproducer.

Manufacturing Assembly

FIG. 8 is a diagram illustrating a manufacturing assembly use caseaccording to an embodiment of the subject matter described herein. Onthe widget assembly line 800, the maintenance protocol is dependent onthe number of widgets manufactured. The producer in this case is thefinished product with an RFID embedded chip. The consumer is theassembly line sensor/scanner 802. Each time a finished widget isproduced, scanner 802 on the assembly line reads the RFID 804 (thetrigger.) A trigger event, along with identification information, issent to the event clearinghouse (message 806). The event clearinghouserecognizes that an appropriate maintenance application is run based onthe number of widgets produced. The appropriate application 808 is sentto the consumer and is executed on the assembly line maintenance module810.

Gaming and Scavenger Hunt

FIG. 9 is a diagram illustrating, by way of example, a gaming food andbeverage use case according to an embodiment of the subject matterdescribed herein. The producer(s) in this example gaming case are anumber of local food establishments. By way of this example, restaurantsand bars may choose to participate in a gaming event (e.g., scavengerhunt) to encourage potential customers. The participating establishmentshave created a “scavenger hunt.” Participation in the scavenger hunt andcompletion of the scavenger hunt provides discounts and coupons. Theconsumer is a person that has registered to participate in the scavengerhunt. Each establishment uses a beacon 900, which sends a signal 902that is specific to the scavenger hunt and the establishment (gaming;scavenger hunt; scavengerhuntID; establishmentID.) The consumer haselected to participate in events with this signal. The consumer capturesthe signal with the scanner app 904 (in this case via smart phone) andtransmits an event to event clearinghouse (message 906). At each pointduring the scavenger hunt, the progress of the consumer's scavenger huntis logged in the profile manager (step 908) and the establishment canexecute an event specific to the establishment that is routed from theaction dispatcher, e.g., an SMS text message, a discount coupon, providea fee appetizer, etc., (message 910), which the consumer receives (step912).

Registration

FIG. 10 is a diagram illustrating a registration use case according toan embodiment of the subject matter described herein. This FIG.illustrates how the event clearinghouse communication and APIs may beused by producers, consumers, and subscribers. In one embodiment, aproducer may use a web interface to set up producer profiles along withproducer configuration and authentication information, such as loginnames, passwords, account settings, etc. Consumers may likewise useprovided APIs to set up consumer profiles and authenticationinformation. Both producers and consumers may establish preferences andinterests. Producers may provide information about the kinds of events,triggers, and messages that may be produced, as well as the kinds ofactions that may be taken. Providers may also provide parameters bywhich consumers may be matched to the events received. Those informationmay be embodied as rules, actions, triggers, etc., may be stored by theevent clearinghouse, such as in the metadata repository, and may be usedby the various components of the event clearinghouse.

Automotive

FIG. 11 is a diagram illustrating an automotive use case according to anembodiment of the subject matter described herein, whereby the eventclearinghouse 106 provides appropriate actions based on triggerinformation and context information. In one example embodiment, theevent clearinghouse 106 is used to manage real time traffic information.Transponders in automobiles act as triggers when they pass appropriatelyconfigured scanners that are installed at predefined locations along theroadway. For example, at step 1100, the tag located inside the vehiclepasses the tag reader, which receives trigger information from the tag.At step 1102, event information is sent to the event clearinghouse.Based on the triggers from all of the cars it is possible to create areal time view of traffic congestion, along all paths that scanners areinstalled across. Rules for specific drivers can be configured based ontheir current destination, tolerance for traffic, and any other contextitems such as their calendar for when their next appointment is. At step1104, information is sent from the event clearinghouse back to thevehicle or a mobile phone associated with the driver of the vehicle. Forexample, when a specific automobile is about to enter an area of trafficwhich would prevent them from reaching their destination in the allottedamount of time, the clearinghouse recognizes this potential situationand sends an action to the car GPS to reroute around the impendingtraffic jam.

Battlefield

FIG. 12 is a diagram illustrating two battlefield use cases according toan embodiment of the subject matter described herein. The battlefielduse case provides for action delivered to the battlefield based ontriggers and battlefield context information received by theclearinghouse 106. In one embodiment of battlefield actions based ontriggers the event clearinghouse 106 is responsible for coordinating theactivities of a group of bomb disposal robots that are clearing a minefield. For example, at step 1200, each robot connects to theclearinghouse through an ad-hoc radio network. Triggers in this exampleare detected underground mines. At step 1202, when a new mine isdetected the trigger is forwarded to the clearinghouse. At step 1204,the clearinghouse updates the routes of other robots and any othervehicles that are currently en route to the location.

In another embodiment, soldiers are outfitted with medical devices thatmonitor biometric readings such as blood pressure, heart rate, o2concentration, and any other test that the device is capable of runningin real time. At step 1206, the medical devices generate trigger eventstreams to be delivered to the clearinghouse containing the biometricreadings. At step 1208, the clearinghouse processes a set of rules andoptimizes the deployment of medical personnel in order to best treatbattlefield injuries based on the constantly shifting medical scan ofevery soldier in the environment.

Conferences and Events

FIG. 13 is a diagram illustrating a conference or event use caseaccording to an embodiment of the subject matter described herein. Inanother embodiment, the clearinghouse can provide for execution ofvariety of activities between conference organizers and conferenceattendees, between conference attendees or between conference sponsorsand attendees. Based on a token (e.g., conference registration badge orother conference give-away.), attendees can be identified. Attendeeinformation stored in the profile manager identifies areas of interestto the attendee. Attendee location information can, optionally, beprovided by the scanners placed throughout the conference venue. Thegoal of attendee identification embodiment is to provide an enhancedexperience to the attendee by providing opportunities to network withpeople of similar interest, to allow the conference organizers to alertattendees of upcoming events, to allow the sponsors of the conference toprovide appropriate and contextual communications to the attendees andsimilar actions that would enhance to conference or event experience.

By way of example, this embodiment can support a sponsor's ability tonotify an attendee of an upcoming demonstration of the sponsor'sproducts. At step 1300, via RFID communications on an attendee's badge,a signal is sent to a scanner with signal information identifying theconference and conference attendee. At step 1302, the triggerinformation is combined with geolocation and time-of-day informationfrom scanners throughout the conference venue. At step 1304, attendeeidentification and context information is sent to the eventclearinghouse 106. The event clearinghouse 106 recognizes the signal andcontext information. The clearinghouse 106 has attendee and sponsorinformation in the profile manager 322. The clearinghouse 106 routes thesignal, sponsor information and attendee information to the matchingengine 334, which determines that an attendee with the appropriateprofile is in the general area of an upcoming sponsor event. At step1306, the event clearinghouse 106 routes the action message alertingattendee of upcoming event to the consumer. In addition, the rulesengine 324 executes a sponsor's rule to send a free tee shirt to theattendee if the attendee attends the sponsor's event.

Cruise Ship and Theme Park

FIG. 14 is a diagram illustrating a theme park or cruise ship use caseaccording to an embodiment of the subject matter described herein. Inanother embodiment, the clearinghouse can provide for execution ofvariety of activities between theme park managers and theme parkattendees, between theme park attendees or between theme park-sponsoredvendors and attendees. Based on a token (e.g., theme park badge or abracelet or other token given attendees.), attendees can be identified.

Attendee information stored in the profile manager 322 identifies areasof interest to the attendee. Attendee location information can,optionally, be provided by the scanners placed throughout the themepark. The goal of attendee identification embodiment is to provide anenhanced experience to the attendee by providing opportunities tonetwork with people of similar interest, to allow the theme parkmanagers to alert attendees of upcoming events, to allow theme parksponsored venders to provide appropriate and contextual communicationsto the attendees and similar actions that would enhance the attendeesexperience or provide marketing opportunities for theme park sponsoredvendors.

By way of example, this embodiment can support a sponsor's ability tonotify attendees that lines for a particular event or ride are veryshort. At step 1400, via RFID communications on an attendee's badge, asignal is sent to a scanner with signal information identifying theattendee. At step 1402, the signal information is combined withgeolocation and time-of-day information from scanners throughout thetheme park. At step 1404 attendee identification and context informationis sent to the event clearinghouse. The event clearinghouse 106recognizes the signal and context information. The clearinghouse 106 hasattendee in the profile manager 322. The clearinghouse 106 routes thesignal, sponsor information and attendee information to the matchingengine 334, which determines that an attendee with the appropriateprofile is in the general area of a particular ride. The theme park alsotracks how long lines are for particular ride. In addition, the profilemanager 322 in the event clearinghouse 106 contains information aboutwhich rides the attendee is interest in. At step 1406, the eventclearinghouse 106 routes the action message alerting attendee of theshort line to the consumer.

Rental or Item Location Tracking

FIG. 15 is a diagram illustrating the tagging and tracking of a use caseaccording to an embodiment of the subject matter described herein. Inanother embodiment, the clearinghouse can identify the location of anitem. Each item that needs to be tracked is tagged with an NFC tag(e.g., an RFID chip embedded or attached to the item.) Based on thesignal of this NFC device, the item can be identified. The item wouldcontain an item identifier and a tracker identifier. Trackers of itemsuse a producer registration application (see FIG. 10) to register allitems that they would like to have tracked. The profile manager 322contains information of all items and trackers and information aboutwhether or not the item is to be tracked and under what circumstances.The event clearinghouse is constantly receiving signals from a networkof scanners located across a wide geographic area. These scanners canconstantly be receiving trigger signals and sending trigger event and/orcontext event information to the event clearinghouse 106 containingsignal identification and scanner geolocation information andtime-of-day. When the clearinghouse 106 receives an event indicating anitem to be tracked, the trigger information along with the geolocationcontext is sent to the rules matching engine 334. The rules matchingengine 334 determines if the trigger and rule indicate that the itemneeds to be tracked. If so, the appropriate action is taken based on thetracker's profile information (e.g., a map on a trackers mobile deviceis updated to place the item at a particular location.)

By way of example, this embodiment can support a rental's companyability to track and map the location of any items that it has rented.At step 1500, each item that needs to be tracked is tagged with an NFCtag (e.g., an RFID chip embedded or attached to the item.) Based on thesignal of this NFC device, the item can be identified. The item wouldcontain an item identifier and a rental company identifier. Rentalcompanies use a producer registration application (see FIG. 10) toregister all items that they would like to have tracked. The profilemanager 322 contains information of all items and rental companies andinformation about whether or not the item is to be tracked and underwhat circumstances (e.g., the rental item has been located in ageographic location that is beyond the range expected by the rentalcompany.) At step 1502, the event clearinghouse 106 is constantlyreceiving signals from a network of scanners located across a widegeographic area. These scanners are constantly receiving signals andsending trigger information to the event clearinghouse containing signalidentification and scanner geolocation information and time-of-day. Whenthe clearinghouse receives a trigger indicating an item to be tracked,the trigger information along with the geolocation context is sent tothe rules engine. The rules engine 334 determines if the trigger andrule indicate that the item needs to be tracked. If so, at step 1504 theappropriate action is taken based on the rental company's profileinformation (e.g., the tracker's location app updates information thatidentifies the location of all the items it currently has rented.)

Item Tracking (and Theft Prevention)

FIG. 16 is a diagram illustrating the tagging and tracking of an itemfor potential theft use case according to an embodiment of the subjectmatter described herein. In another embodiment, the clearinghouse canprovide for locating items that may have been stolen. At step 1600, eachitem that needs to be tracked is tagged with an NFC tag (e.g., an RFIDchip embedded or attached to the item. Based on the signal of this NFCdevice, the item can be identified. The item would contain an itemidentifier and an owner identifier. Owners of items use a producerregistration application (see FIG. 10) to register all items that theywould like to have tracked. Furthermore, in the event of an item theft,owners of the items would indicate via the registration application thatan item has been stolen. The profile manager 322 contains information ofall items and owners and information about whether the item has beenstolen. At step 1602, the event clearinghouse 106 is constantlyreceiving signals from a network of scanners located across a widegeographic area. These scanners are constantly receiving trigger signalsand sending event information to the event clearinghouse containingsignal identification and scanner geolocation information andtime-of-day. When the clearinghouse 106 receives an event thatidentifies an item to be tracked, the trigger information along with thegeolocation context is sent to the rules engine 334. The rules engine334 determines if a rule indicates that the item has been stolen. If so,at step 1604 the appropriate action is taken based on the owner'sprofile information (e.g., a message is sent to the owner or a phonecall is made to the local authorities indicating that a lost item hasbeen identified at a particular place and a particular time.

Context-Based Tracking—Wedding Registry

FIG. 17 is a diagram illustrating the tagging items to providecontextual information about the item to the recipient (signal consumer)use case according to an embodiment of the subject matter describedherein. In another embodiment, the clearinghouse 106 can provideinformation in the context of the recipient, via a device thatcommunicates with the clearinghouse (e.g. a portable phone) providesinformation about the consumer's location. The clearinghouse 106captures that information along with other trigger signals in thegeneral area. Information in the clearinghouse profile provides contextabout the specific activities and events that are pertinent to theconsumer. Based on trigger information, the consumer locationinformation and the context information, the appropriate action istriggered from the clearinghouse.

By way of example, the embodiment can support aiding a wedding inviteein buying a wedding gift. At step 1700, in a department store, areas aretagged with an NFC tag (e.g., an RFID chip.) Based on the signal of thisNFC device, the item can be identified. The item may contain an itemidentifier. Shoppers running a wedding registry app would registerimportant profile information via the producer app (wedding registryapp.) The registration may consist of the name of the couple gettingmarried and the name of the wedding attendee, as well as otherinformation that will help determine an appropriate gift (e.g., pricerange the wedding is willing to spend). Additionally, the couple that isgetting married may use the registration app to enter the specific itemsthat they are interested in as wedding gifts along with additionalpertinent information (e.g., in what stores is the item available.) Asthe wedding invitee browses through the store, the wedding registry appon the invitee's device (e.g., mobile device) acts as a scanner andreceives the signals coming from tagged areas in the store. The scannerreceives the signal and adds geolocation within the store information tothe clearinghouse. At step 1702, the clearinghouse sends the geolocationinformation and the trigger information to the clearinghouse 106 whereit is combined with the profile information of the shopper (weddinginvitee) and the registry information of the couple getting married. Inresponse, at step 1704, when the shopper is in the general area of itemsthat might be of interest based on the shopper profile information andthe registry information, a message is sent to the registry appindicating the name, location, and price of the item. In addition, themessage could send additional information; for example, if the item hadalready been purchased for the couple.

The description and drawings presented herein are illustrative and arenot to be construed as limiting. Numerous specific details are describedto provide a thorough understanding of the disclosure. However, incertain instances, well-known or conventional details are not describedin order to avoid obscuring the description. References to one or anembodiment in the present disclosure can be, but not necessarily are,references to the same embodiment; and, such references mean at leastone of the embodiments.

Without intent to limit the scope of the disclosure, examples ofinstruments, apparatus, methods and their related results according tothe embodiments of the present disclosure are given below. Note thattitles or subtitles may be used in the examples for convenience of areader, which in no way should limit the scope of the disclosure. Unlessotherwise defined, all technical and scientific terms used herein havethe same meaning as commonly understood by one of ordinary skill in theart to which this disclosure pertains. In the case of conflict, thepresent document, including definitions will control.

Reference in this specification to “one embodiment” or “an embodiment”means that a particular feature, structure, or characteristic describedin connection with the embodiment is included in at least one embodimentof the disclosure. The appearances of the phrase “in one embodiment” invarious places in the specification are not necessarily all referring tothe same embodiment, nor are separate or alternative embodimentsmutually exclusive of other embodiments. Moreover, various features aredescribed which may be exhibited by some embodiments and not by others.Similarly, various requirements are described which may be requirementsfor some embodiments but not other embodiments.

The terms used in this specification generally have their ordinarymeanings in the art, within the context of the disclosure, and in thespecific context where each term is used. Certain terms that are used todescribe the disclosure are discussed below, or elsewhere in thespecification, to provide additional guidance to the practitionerregarding the description of the disclosure. For convenience, certainterms may be highlighted, for example using italics and/or quotationmarks. The use of highlighting has no influence on the scope and meaningof a term; the scope and meaning of a term is the same, in the samecontext, whether or not it is highlighted. It will be appreciated thatsame thing can be said in more than one way.

Consequently, alternative language and synonyms may be used for any oneor more of the terms discussed herein, nor is any special significanceto be placed upon whether or not a term is elaborated or discussedherein. Synonyms for certain terms are provided. A recital of one ormore synonyms does not exclude the use of other synonyms. The use ofexamples anywhere in this specification including examples of any termsdiscussed herein is illustrative only, and is not intended to furtherlimit the scope and meaning of the disclosure or of any exemplifiedterm. Likewise, the disclosure is not limited to various embodimentsgiven in this specification.

Some portions of the detailed description may be presented in terms ofalgorithms and symbolic representations of operations on data bitswithin a computer memory. These algorithmic descriptions andrepresentations are the means used by those skilled in the dataprocessing arts to most effectively convey the substance of their workto others skilled in the art. An algorithm is here, and generally,conceived to be a self-consistent sequence of operations leading to adesired result. The operations are those requiring physicalmanipulations of physical quantities. Usually, though not necessarily,these quantities take the form of electrical or magnetic signals capableof being stored, transferred, combined, compared, and otherwisemanipulated. It has proven convenient at times, principally for reasonsof common usage, to refer to these signals as bits, values, elements,symbols, characters, terms, numbers, or the like.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the following discussion,it is appreciated that throughout the description, discussions utilizingterms such as “processing” or “computing” or “calculating” or“determining” or “displaying” or the like, refer to the action andprocesses of a computer system, or similar electronic computing device,that manipulates and transforms data represented as physical(electronic) quantities within the computer system's registers andmemories into other data similarly represented as physical quantitieswithin the computer system memories or registers or other suchinformation storage, transmission or display devices.

The algorithms and displays presented herein are not inherently relatedto any particular computer or other apparatus. Various general purposesystems may be used with programs in accordance with the teachingsherein, or it may prove convenient to construct more specializedapparatus to perform the methods of some embodiments. The requiredstructure for a variety of these systems will appear from thedescription below. In addition, the techniques are not described withreference to any particular programming language, and variousembodiments may thus be implemented using a variety of programminglanguages.

In alternative embodiments, the machine operates as a standalone deviceor may be connected (e.g., networked) to other machines. In a networkeddeployment, the machine may operate in the capacity of a server or aclient machine in a client-server network environment, or as a peermachine in a peer-to-peer (or distributed) network environment.

The machine may be a server computer, a client computer, a personalcomputer (PC), a tablet PC, a laptop computer, a set-top box (STB), apersonal digital assistant (PDA), a cellular telephone, an iPhone, aBlackberry, a processor, a telephone, a web appliance, a network router,switch or bridge, or any machine capable of executing a set ofinstructions (sequential or otherwise) that specify actions to be takenby that machine.

While the machine-readable medium or machine-readable storage medium isshown in an exemplary embodiment to be a single medium, the term“machine-readable medium” and “machine-readable storage medium” shouldbe taken to include a single medium or multiple media (e.g., acentralized or distributed database, and/or associated caches andservers) that store the one or more sets of instructions. The term“machine-readable medium” and “machine-readable storage medium” shallalso be taken to include any medium that is capable of storing, encodingor carrying a set of instructions for execution by the machine and thatcause the machine to perform any one or more of the methodologies of thepresently disclosed technique and innovation.

In general, the routines executed to implement the embodiments of thedisclosure, may be implemented as part of an operating system or aspecific application, component, program, object, module or sequence ofinstructions referred to as “computer programs.” The computer programstypically comprise one or more instructions set at various times invarious memory and storage devices in a computer, and that, when readand executed by one or more processing units or processors in acomputer, cause the computer to perform operations to execute elementsinvolving the various aspects of the disclosure.

Moreover, while embodiments have been described in the context of fullyfunctioning computers and computer systems, those skilled in the artwill appreciate that the various embodiments are capable of beingdistributed as a program product in a variety of forms, and that thedisclosure applies equally regardless of the particular type of machineor computer-readable media used to actually effect the distribution.

Further examples of machine-readable storage media, machine-readablemedia, or computer-readable (storage) media include but are not limitedto recordable type media such as volatile and non-volatile memorydevices, floppy and other removable disks, hard disk drives, opticaldisks (e.g., Compact Disk Read-Only Memory (CD ROMS), Digital VersatileDisks, (DVDs), etc.), among others, and transmission type media such asdigital and analog communication links.

Unless the context clearly requires otherwise, throughout thedescription and the claims, the words “comprise,” “comprising,” and thelike are to be construed in an inclusive sense, as opposed to anexclusive or exhaustive sense; that is to say, in the sense of“including, but not limited to.” As used herein, the terms “connected,”“coupled,” or any variant thereof, means any connection or coupling,either direct or indirect, between two or more elements; the coupling ofconnection between the elements can be physical, logical, or acombination thereof. Additionally, the words “herein,” “above,” “below,”and words of similar import, when used in this application, shall referto this application as a whole and not to any particular portions ofthis application. Where the context permits, words in the above DetailedDescription using the singular or plural number may also include theplural or singular number respectively. The word “or,” in reference to alist of two or more items, covers all of the following interpretationsof the word: any of the items in the list, all of the items in the list,and any combination of the items in the list.

The above detailed description of embodiments of the disclosure is notintended to be exhaustive or to limit the teachings to the precise formdisclosed above. While specific embodiments of, and examples for, thedisclosure are described above for illustrative purposes, variousequivalent modifications are possible within the scope of thedisclosure, as those skilled in the relevant art will recognize. Forexample, while processes or blocks are presented in a given order,alternative embodiments may perform routines having steps, or employsystems having blocks, in a different order, and some processes orblocks may be deleted, moved, added, subdivided, combined, and/ormodified to provide alternative or subcombinations. Each of theseprocesses or blocks may be implemented in a variety of different ways.Also, while processes or blocks are at times shown as being performed inseries, these processes or blocks may instead be performed in parallel,or may be performed at different times. Further any specific numbersnoted herein are only examples: alternative implementations may employdiffering values or ranges.

The teachings of the disclosure provided herein can be applied to othersystems, not necessarily the system described above. The elements andacts of the various embodiments described above can be combined toprovide further embodiments.

Any patents and applications and other references noted above, includingany that may be listed in accompanying filing papers, are incorporatedherein by reference. Aspects of the disclosure can be modified, ifnecessary, to employ the systems, functions, and concepts of the variousreferences described above to provide yet further embodiments of thedisclosure.

These and other changes can be made to the disclosure in light of theabove Detailed Description. While the above description describescertain embodiments of the disclosure, and describes the best modecontemplated, no matter how detailed the above appears in text, theteachings can be practiced in many ways. Details of the system may varyconsiderably in its implementation details, while still beingencompassed by the subject matter disclosed herein. As noted above,particular terminology used when describing certain features or aspectsof the disclosure should not be taken to imply that the terminology isbeing redefined herein to be restricted to any specific characteristics,features, or aspects of the disclosure with which that terminology isassociated. In general, the terms used in the following claims shouldnot be construed to limit the disclosure to the specific embodimentsdisclosed in the specification, unless the above Detailed Descriptionsection explicitly defines such terms. Accordingly, the actual scope ofthe disclosure encompasses not only the disclosed embodiments, but alsoall equivalent ways of practicing or implementing the disclosure underthe claims.

What is claimed is:
 1. A method for dynamic execution of actions inresponse to communications events of one or more communicationsprotocols that are generated in response to a variety of triggers, themethod comprising: at an event clearinghouse for receivingcommunications events: receiving a communications event that isassociated with a trigger, the communications event having a firstcommunication protocol; identifying an action to take in response to thecommunications event; identifying a target for the action; andinitiating the identified action by or on behalf of the identifiedtarget, wherein the event clearinghouse supports a plurality ofcommunications protocols.
 2. The method of claim 1 wherein thecommunications event is generated in response to detection of an eventtrigger, and the event trigger comprises at least one of: a visualtrigger; a near field communication trigger; a radio frequency trigger;a touch or contact trigger; a proximity or presence trigger; an audio oraural trigger; a motion or acceleration trigger; and a user inputtrigger.
 3. The method of claim 1 comprising receiving, at the eventclearinghouse, a communications event that contains contextualinformation and using the contextual information to identify the actionand/or the target for the action, and wherein the contextual informationincludes at least one of: location information, manufacturerinformation, product data, social networking information, anddemographic information.
 4. The method of claim 1 wherein the eventclearinghouse allows registration and configuration of dynamicallytriggered events.
 5. The method of claim 4, further comprising providingan interface to consumers and producers for specifying and configuring:profile information, authentication information, login names, passwords,account settings, preferences, interests, and types of events, triggers,messages, and actions.
 6. The method of claim 1 wherein the eventclearinghouse is used to dynamically trigger actions associated withsocial networking and identifying a target for an action includesidentifying a set of people that have expressed one or more commoninterests or a set of people that meet a set of criteria.
 7. The methodof claim 6 wherein the identified action includes at least one of:notifying a set of people that they have expressed a common interest;and notifying a person of the existence or location of another personmeeting a set of criteria.
 8. The method of claim 1 wherein the eventclearinghouse is used to dynamically trigger actions associated withretail manufacturing and receiving a communications event includesreceiving information about a location, preference, or purchase of aconsumer, wherein an identified action includes accepting bids fromadvertisers, manufacturers, or retailers.
 9. The method of claim 1wherein identifying a target includes identifying a consumer based onconsumer profile information and advertiser profile information, and theevent clearinghouse is used to dynamically trigger events associatedwith providing retail product support and receiving a communicationsevent includes receiving signals from a device embedded in an article ofclothing.
 10. The method of claim 9 wherein identifying a target for anaction includes identifying a consumer who might be interested in thearticle of clothing.
 11. The method of claim 8 wherein initiating anaction includes notifying an identified consumer about at least one of astyle, a color, and a nearest retail outlet associated with the articleof clothing and the action includes providing product support ordocumentation to enhance an initial experience with a new customerand/or new product for a predetermined time period after purchase. 12.The method of claim 1 wherein the event clearinghouse is used todynamically trigger events associated with providing dating services andidentifying a target for an action includes identifying a set ofconsumers that have expressed one or more common interests, and theaction includes facilitating personal meetings between the identifiedset of consumers for dating, networking, recruiting, or communityinteraction.
 13. The method of claim 1 wherein the event clearinghouseis used to dynamically trigger events associated with monitoring amanufacturing process and effecting maintenance procedures and receivinga communications event includes receiving an indication of a number ofitems processed, wherein identifying a target for an action includesidentifying equipment having processed a number of items above athreshold number, and the action comprises initiating a maintenanceprocedure for the identified equipment.
 14. The method of claim 1wherein the event clearinghouse is used to dynamically trigger eventsassociated with providing gaming, food, or beverage services andreceiving a communications event includes receiving an indication ofparticipant activity, wherein identifying a target for an actionincludes identifying a participant that has satisfied an activityrequirement and the action comprises identifying a participant that hassatisfied an activity requirement, providing an award to theparticipant, or providing notification of an award to the participant.15. The method of claim 1 wherein the event clearinghouse is used todynamically trigger events associated with automotive applications andreceiving a communications event includes receiving real-time or nearreal-time traffic information, wherein receiving traffic informationincludes receiving events that generated in response to detecting, byscanners installed at specified locations, triggers generated bytransponders attached to automobiles.
 16. The method of claim 15 whereinthe action includes provides real-time or near real-time alerts todrivers of traffic conditions and identifying a target for an actionincludes identifying drivers that are in proximity to detected trafficconditions.
 17. The method of claim 1 wherein the event clearinghouse isused to dynamically trigger events associated with battlefieldapplications and receiving a communications event includes receiving thelocation of a detected explosive device, wherein identifying a targetfor an action includes identifying bomb disposal robots in the vicinityof the detected explosive device and the action includes instructing thebomb disposal robots to dispose of the detected explosive device. 18.The method of claim 17 wherein receiving a communications event includesreceiving the location of an injured soldier.
 19. The method of claim 18wherein identifying a target for an action includes identifying medicalpersonnel in the vicinity of the injured soldier and the action includesdeploying the identified medical personnel to the injured soldier. 20.The method of claim 16 wherein receiving a communications event includesreceiving biometric data from military personnel outfitted withbiometric sensors and identifying a target for an action includes usingbiometric data to identify military personnel having biometric readingsthat meet a health, location, or movement criterion, wherein the actionincludes reporting the health, location, or movement of the identifiedmilitary personnel to a medical personnel or a commanding officer of theidentified military personnel.